/*!
 @header   NSString 分类
 @abstract 对NSString类的扩展
 @author yqxie
 @version 1.0 2015/06/17 Create
 */

#import <Foundation/Foundation.h>

/*!
 @class
 @abstract  NSString 分类
 @discussion 对NSString类的扩展
 */
@interface NSString (Extension)

/*!
@method
@abstract 返回index位置的字符
@param index : 要获取字符的位置
@discussion

@return 返回的字符
*/
- (unichar)charAt:(NSUInteger)index;

/*!
 @method
 @abstract 找出str最后出现的位置，如果找不到，返回-1
 @param str : 字符串
 @discussion
 
 @return 找到返回该位置，找不到，返回-1
 */
- (NSUInteger)lastIndexOfString:(NSString *)str;

/*!
 @method
 @abstract 截取字符串
 @param beginIndex : 起始位置
 @param endIndex : 结束位置
 @discussion
 
 @return 返回截取后的字符串
 */
- (NSString *)substringFromIndex:(NSUInteger)beginIndex toIndex:(NSUInteger)endIndex;

/*!
 @method
 @abstract 返回字符的位置
 @param ch : 字符
 @discussion
 
 @return 返回字符的位置
 */
- (NSUInteger)indexOfChar:(unichar)ch;

/*!
 @method
 @abstract 从index位置开始查找ch的位置
 @param ch : 字符
 @param index : 开始的位置
 @discussion
 
 @return 返回从index位置开始查找ch的位置
 */
- (NSUInteger)indexOfChar:(unichar)ch fromIndex:(NSUInteger)index;

/*!
 @method
 @abstract 返回字符串的位置
 @param str : 字符串
 @discussion
 
 @return 返回字符串的位置
 */
- (NSUInteger)indexOfString:(NSString *)str;

/*!
 @method
 @abstract 返回从index位置开始查找str的位置
 @param str : 字符串
 @param index : 开始的位置
 @discussion
 
 @return 返回从index位置开始查找str的位置
 */
- (NSUInteger)indexOfString:(NSString *)str fromIndex:(NSUInteger)index;

/*!
 @method
 @abstract 比较字符串的大小
 @param otherStr : 需要比较的字符串
 @discussion
 
 @return 返回比较的结果
 */
- (NSComparisonResult)intCompare:(NSString *)otherStr;

/*!
 @method
 @abstract 分割字符串
 @param separator : 分割的字符
 @discussion
 
 @return 返回分割好的数组
 */
- (NSArray *)split:(NSString *)separator;

/*!
 @method
 @abstract 处理空字符串
 @discussion
 
 @return 结果
 */
-(id)strProcess;

/*!
 @method
 @abstract 处理空字符串
 @discussion
 
 @return 结果
 */
-(id)strForNull;

/*!
 @method
 @abstract 是否为常规字符，即：没有特殊字符
 @discussion 常见特殊字符：([^%&',;=!~?$]+*@~_|.?￠￢￣#￥[]{}【】/￡¤《》)
 
 @return
 */
- (BOOL)isNormal;

/*!
 @method
 @abstract 是否为电话号码
 @discussion
 
 @return
 */
- (BOOL)isTelephone;

/*!
 @method
 @abstract 是否为常见用户名
 @discussion 用户名由字母和数字组成，长度为3到20
 
 @return
 */
- (BOOL)isUserName;

/*!
 @method
 @abstract 是否为常见中文用户名
 @discussion 用户名由字母和数字组成，长度为3到20
 
 @return
 */
- (BOOL)isChineseUserName;

/*!
 @method
 @abstract 是否为常用密码
 @discussion 用户名由字母和数字组成，长度为6到20
 
 @return
 */
- (BOOL)isPassword;

/*!
 @method
 @abstract 是否为邮件
 @discussion 用户名由字母和数字和邮件常用符号组成
 
 @return
 */
- (BOOL)isEmail;

/*!
 @method
 @abstract 是否有效密码输入
 @discussion 用户名密码由子母和数字和非特殊常用符号组成
 
 @return
 */
-(BOOL)isInPassword;
    
/*!
 @method
 @abstract 是否为url地址
 @discussion
 
 @return
 */
- (BOOL)isUrl;

/*!
 @method
 @abstract 是否为IP地址
 @discussion
 
 @return
 */
- (BOOL)isIPAddress;

/*!
 @method
 @abstract 邮箱加密字符串
 @discussion 邮箱加密字符串
 
 @return 邮箱加密字符串
 */
- (NSString *)emailSecurityString;

/*!
 @method
 @abstract 电话加密字符串
 @discussion 电话加密字符串
 
 @return 电话加密字符串
 */
- (NSString *)phoneSecurityString;

/*!
 @method
 @abstract 证件加密字符串
 @discussion 证件加密字符串
 
 @return 证件加密字符串
 */
- (NSString *)identificationSecurityString;
@end
